$(function () {
    //地区菜单
    $('[cm_id]').click(function () {
        $('#cid').val($(this).attr('cm_id'));
        $("#CityName").val($(this).attr('cm_name'));
        $('#cityMenu').hide();
    }).mouseover(function () {
        $("[cm_id]").removeClass("selected");
        $(this).addClass("selected");
    });
    $("#CityName").keyup(function (e) {
        if (!e) var e = window.event;
        var n = e.which || w.keyCode;
        var v = $(this).val().toLowerCase();
        if (n == 40 || n == 48 || n == 13) return;
        $("[cm_id]").removeClass("selected").hide();
        $(v == '' ? '[cm_id]' : '[cm_en^="' + v + '"],[cm_name^="' + v + '"]').show().filter(':first').addClass("selected");
        $('#cityMenu').show();
    }).keydown(function (e) {
        if (!e) var e = window.event;
        var n = e.which || w.keyCode;
        switch (n) {
            case 40:
                var s = -1,
			h = $('[cm_id]:visible');
                if (h.length < 2) return;
                for (var i = 0; i < h.length; i++) if ($(h[i]).hasClass('selected')) {
                    s = i;
                    break;
                }
                s = s == -1 || h.length == s + 1 ? 0 : s + 1;
                $("[cm_id]").removeClass("selected");
                $(h[s]).addClass('selected');
                break;
            case 38:
                var s = 0,
			h = $('[cm_id]:visible');
                if (h.length < 2) return;
                for (var i = 0; i < h.length; i++) if ($(h[i]).hasClass('selected')) {
                    s = i;
                    break;
                }
                s = s == 0 ? h.length - 1 : s - 1;
                $("[cm_id]").removeClass("selected");
                $(h[s]).addClass('selected');
                break;
            case 13:
                $('#cid').val($('.selected').attr('cm_id'));
                $(this).val($('.selected').attr('cm_name'));
                $('#cityMenu').hide();
                break;
            default:
                break;
        }
    }).focus(function () {
        $(this).val('');
        $('#cid').val(0);
        var offset = $(this).offset(),
		v = $(this).val().toLowerCase();
        $('#cityMenu').show().css({
            'left': offset.left,
            'top': offset.top + 20
        });
        $("[cm_id]").removeClass('selected');
        if (v != '') {
            $('[cm_id]').hide();
            $('[cm_en^="' + v + '"],[cm_name^="' + v + '"]').show();
        }
        $("[cm_id]:visible:first").addClass('selected');
    }).blur(function () {
        setTimeout(function () {
            var v = $("#CityName").val();
            var h = $('[cm_en^="' + v + '"],[cm_name^="' + v + '"]');
            if (h.length == 1) {
                $("#CityName").val($(h).attr('cm_name'));
                $('#cid').val($(h).attr('cm_id'));
            } else {
                if ($("#CityName").val() == '' && $("#CityName").attr('default') == 1) {
                    var def = $('#cityMenu').find('[cm_id]:first');
                    $("#CityName").val(def.attr('cm_name'));
                    $("#cid").val(def.attr('cm_id'));
                } else {
                    $("#CityName").val('中文/拼音').css('color', '#333');
                    $('#cid').val(0);
                }
            }
            $('#cityMenu').hide()
        },
		500);
    }).blur();
});